<template>
  <div class="app-container">
    <y-table ref="gridRef" v-bind="listOptions">
    </y-table>
  </div>
</template>

<script>

import {
  getStaffList,
} from '@/api/base/staff' // 接口

import listMixin from '@/mixins/listMixin'

export default {
  mixins: [listMixin],
  data() {
    return {
      // 表格配置
      listOptions: {
        // 默认查询数据
        defaultQueryData: {
          // form
          form: {},
          // 分页
          page: {
            pageSize: 50
          },
          // 其他查询参数
          params: {}
        },
        // 获取数据方法
        dataMethod: getStaffList,
        // 表格配置
        tableOptions: {
          rowConfig: {
            keyField: 'tid'
          },
          // 表格列
          columns: [
            { type: 'seq', width: 60, align: 'center', fixed: 'left' },
            { field: "staffId", title: "工号" },
            { field: "staffName", title: "姓名" },
            { field: "collegeCode", title: "学院", dictCode: 'college_list' },
            { field: "positionTitle", title: "现任职务" },
            { field: "staffRoom", title: "所在教研室" },
            { field: "email", title: "电子邮箱", },
          ]
        },
        // 表单配置
        formOptions: {
          items: [
            {
              field: 'collegeCode', title: '学院',
              itemRender: {
                name: 'ZSelect',
                props: {
                  dictCode: 'college_list_easy'
                }
              }
            },
            {
              field: 'keyword', title: '工号/姓名',
              itemRender: {
                name: 'VxeInput'
              }
            }
          ]
        },
      },
    }
  },
  /**
   * 组件挂载时异步执行的方法
   */
  async mounted() {
    // 动态设置查询参数
    // 此处的目的是根据某些条件或逻辑动态地设置组件的查询参数，以便在加载数据前做好准备
    await this.setFormQuery()

    // 加载数据
    // 通过refs引用调用loadData方法来加载数据
    this.$refs.gridRef.loadData()
  },
  methods: {
    async setFormQuery() {
      // this.listOptions.defaultQueryData.form.pageSize = 50
      // this.listOptions.defaultQueryData.form.pageNum = 1
      // this.dictCampusList = await this.getDictItems("campus_list");
      // this.dictCollegeList = await this.getDictItems("college_list");
    }
  }
}
</script>

<style lang="scss" scoped></style>
